Personal computer systems in general, and IBM personal computers in particular, have attained widespread use for providing computer power to many segments of today's society. A personal computer system can usually be defined as a desk top, floor standing, or portable computer that includes a system unit having a system processor, a display monitor, a keyboard, one or more diskette drives, a fixed disk storage, an optional pointing device such as a "mouse," and an optional printer. These systems are designed primarily to give independent computing power to a single user or small group of users and are inexpensively priced for purchase by individuals or businesses. Examples of such personal computer systems are sold under the trademarks: IBM's PERSONAL COMPUTER, PERSONAL COMPUTER XT, PERSONAL COMPUTER AT and IBM's PERSONAL SYSTEM/2 Models 25, 30, 50, 55, 56, 57, 60, 65, 70, 80, 90 and 95 (hereinafter referred to as the IBM PC, XT, AT, and PS/2, respectively).
These systems can be classified into two general families. The first family, usually referred to as Family 1 Models, uses a bus architecture exemplified by the AT computer and other "IBM compatible" machines. The second family, referred to as Family 2 Models, uses IBM's MICRO CHANNEL bus architecture exemplified by IBM's PS/2 Models 50 through 95. The bus architectures used in Family 1 and Family 2 models are well known in the art.
Beginning with the earliest personal computer system of the Family 1 models, the IBM PC, and through the current Family 2 models, the system processor of the personal computer is from the Intel 86 Family of microprocessors. The Intel 86 Family of processors includes the 8088, 8086, 80286, 80386, and 80486 processors commercially available from Intel Corporation. The architecture of the Intel 86 Family of processors provides an upwardly compatible instruction set which assists in preserving software investments from previous processors in the 86 Family of processors. This upward compatibility preserves the software application base of the personal computers which use this family of processors. A variety of commonly available and well known software operating systems, such as a DOS or an OS/2 operating system, operate on various members of the Intel 86 Family of processors.
The PC and XT computers use the Intel 8088 processor. The AT computers use the Intel 80286 processor. The PS/2 line spans several of the Intel processors. More specifically, a PS/2 Model 30, which is similar to the IBM PC and XT, uses an Intel 8086 processor. The PS/2 Models 50 and 60 both use the Intel 80286 processors. The Intel 80386 processor is used in the IBM PS/2 Model 80 and certain versions of the IBM PS/2 Model 70. Other versions of the IBM PS/2 Model 70, as well as the PS/2 Models 90 XP 486 and 95 XP 486, use the Intel 80486 processor.
The processors in the Intel 86 Family support a variety of operating modes. Real mode, which supports a one megabyte system address space, is the only operating mode of the 8088 and 8086 processors. The 80286 supports both a real and a protected operating mode. Protected mode provides a mode of operation which prevents an application from interfering with the operation of other applications or the operating system. The 80286 provides extended addressing capabilities, allowing up to sixteen megabytes of memory to be addressed directly. To maintain downward compatibility, the 80286 can be operated in real mode to emulate the real mode of the 8088 or 8086. The 80386 and 80486 can address up to four gigabytes of physical memory. The 80386 and 80486 also support a virtual 86 mode of operation. The virtual 86 mode supports the operational characteristics of the real mode within the overall confines of the protected mode environment.
With personal computers, software and hardware compatibility is of great importance. To provide software and hardware compatibility, an insulation layer of system resident code, also referred to as microcode, was established between the hardware and the software. This code provided an operational interface between a user's application program or operating system and the hardware device to relieve the user of the concern about the characteristics of hardware devices. Eventually, the code developed into a basic input/output system (BIOS), for allowing new hardware devices to be added to the system, while insulating the application program/operating system from the peculiarities of the hardware devices. The importance of BIOS was immediately evident because it freed a device driver from depending on specific hardware device characteristics while providing the device driver with an intermediate interface to the hardware device. Because BIOS was an integral part of the computer system and controlled the movement of data in and out of the system processor, it was resident on a system planar board of the system unit and was shipped to the user in either a read-only memory (ROM) or an erasable programmable read-only memory (EPROM). BIOS in the original IBM PC occupied 8 K bytes (a kilobyte or "K byte" refers to a quantity of 1024 bytes) of ROM resident on the planar board. The ROM also contained a power-on self test (POST) program which was used to test and initialize the computer system. The accumulation of code resident in the computer "system ROM became known as the "system firmware," or simply firmware." Thus, the firmware included a POST portion and a BIOS portion. Sometimes, BIOS was defined to include the POST program.
As new models of the personal computer family were introduced, the firmware was updated and expanded to support new hardware devices such as new input/output (I/O) devices. As could be expected, the firmware started to increase in memory size. For example, with the introduction of the IBM AT, the firmware required 32K bytes of ROM. With the introduction of the PS/2 line, a significantly new BIOS, known as Advanced BIOS, or ABIOS, was developed. However, to maintain software compatibility, BIOS from the Family 1 models had to be included in the Family 2 models. The Family 1 BIOS became known as Compatibility BIOS or CBIOS. Thus, BIOS evolved to include more than one type of BIOS. Present architectural definitions for personal computer systems allow for up to 128K bytes of system firmware address space.
Personal computer systems may be linked to form a network of computers (e.g., a Local Area Network (LAN)) so that users can exchange information, share I/O devices, and utilize a particular direct access storage device (DASD) such as a particular hardfile or diskette. Typically, the LAN includes a client and a server. A server is a computer system which includes a DASD for supplying the storage for one or more clients of the local area network. A client or server may require modifications, updates, extensions or maintenances of the system firmware.
Arrangements for storing, loading and initializing firmware are known. See, for example, commonly owned: U.S. patent application Ser. No. 07/521,050 entitled "Method and Apparatus for Selectively Reclaiming a Portion of RAM in a Personal Computer System," U.S. patent application Ser. No. 07/398,865, entitled "Initial BIOS Load for a Personal Computer System," U.S. patent application Ser. No. 07/777,844, entitled "Programmable Firmware Store for a Personal Computer System," U.S. patent application Ser. No. 07/799,486, entitled "Automated Programmable Firmware Store for a Personal Computer System," and U.S. patent application Ser. No. 07/590,749, entitled "Apparatus and Method for Loading BIOS into a Computer System from a Remote Storage Location," which are all incorporated herein by reference.